package com.ruoyi.controller;

import com.ruoyi.service.AllFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * @Author:zzm
 * @Date: 2024/12/10 15:18
 */
@RestController
@RequestMapping("/amac/allFile")
public class AllFileController {
    @Autowired
    private AllFileService allFileService;

    /**
     * 数据1,2处理
     * 修改excel表名并修改指定日期区间
     */
    @PostMapping("/all")
    public void allFile() {
        allFileService.allFile();
    }

    /**
     * 数据3处理
     * 系统导出物流费用底稿预计170份，能否小程序统一合并成一张表
     */
    @PostMapping("/agentMerge")
    public void agentMerge() {
        allFileService.agentMerge();
    }

    /**
     * 数据3处理
     * 系统导出物流费用底稿预计170份，能否小程序统一合并成一张表
     */
    @PostMapping("/otherChannel")
    public void otherChannel() {
        allFileService.otherChannel();
    }

    /**
     * 数据处理4
     * 将给的数据表根据客户编码匹配excel表名称将数据写入
     */
    @PostMapping("/allToDetail")
    public void allToDetail() throws Exception {
        allFileService.allToDetail();
    }
    @PostMapping("/delete")
    public void delete(){
        allFileService.delete();
    }
    @PostMapping("/colour")
    public void colour(){
        allFileService.colour();
    }

    /**
     * 运费补收
     */
    @PostMapping("/freightSurcharge")
    public void freightSurcharge() throws IOException {
        allFileService.freightSurcharge();
//        // 文件夹路径
//        String folderPath = "D:/caiwu/1234";
//
//        // 排除的表名关键字
//        String[] excludeKeywords = {"效合", "易仓"};
//
//        // 获取文件夹中的文件
//        File folder = new File(folderPath);
//        File[] files = folder.listFiles();
//
//        if (files != null) {
//            for (File file : files) {
//                // 只处理 Excel 文件
//                if (file.isFile() && file.getName().endsWith(".xlsx")) {
//                    String fileName = file.getName();
//
//                    // 排除包含关键字的文件
//                    boolean shouldExclude = false;
//                    for (String keyword : excludeKeywords) {
//                        if (fileName.contains(keyword)) {
//                            shouldExclude = true;
//                            break;
//                        }
//                    }
//
//                    if (shouldExclude) {
//                        continue;
//                    }
//
//                    try {
//                        // 打开 Excel 文件
//                        FileInputStream fis = new FileInputStream(file);
//                        Workbook workbook = new XSSFWorkbook(fis);
//
//                        // 创建字体对象并设置字体属性
//                        Font font = workbook.createFont();
//                        font.setFontName("等线");  // 设置字体为 "等线"
//                        font.setFontHeightInPoints((short) 10);  // 设置字体大小为 10
//
//                        // 创建单元格样式并设置字体
//                        CellStyle cellStyle = workbook.createCellStyle();
//                        cellStyle.setFont(font);  // 设置单元格字体
//
//                        // 检查是否有至少三个 sheet
//                        if (workbook.getNumberOfSheets() >= 4) {
//                            Sheet sheet = workbook.getSheetAt(3); // 获取第三个 sheet
//
//                            // 获取并修改 O1 和 P1 单元格的内容
//                            Row row = sheet.getRow(0);
//                            if (row == null) {
//                                row = sheet.createRow(0); // 创建第一行
//                            }
//
//                            // 设置 O1 单元格内容和样式
//                            Cell o1Cell = row.getCell(5); // O列是第15列 (索引14)
//                            if (o1Cell == null) {
//                                o1Cell = row.createCell(5);
//                            }
//                            o1Cell.setCellValue("订单号");
//                            o1Cell.setCellStyle(cellStyle);  // 应用字体样式
//
//                            // 设置 P1 单元格内容和样式
//                            Cell p1Cell = row.getCell(6); // P列是第16列 (索引15)
//                            if (p1Cell == null) {
//                                p1Cell = row.createCell(6);
//                            }
//                            p1Cell.setCellValue("备注");
//                            p1Cell.setCellStyle(cellStyle);  // 应用字体样式
//
//                            // 保存修改后的文件
//                            FileOutputStream fos = new FileOutputStream(file);
//                            workbook.write(fos);
//                            fos.close();
//
//                            System.out.println("文件已修改: " + fileName);
//                        }
//
//                        // 关闭文件流
//                        fis.close();
//                    } catch (IOException e) {
//                        e.printStackTrace();
//                    }
//                }
//            }
//        }

    }

    /**
     * 购买运单
     */
    @PostMapping("purchaseWaybill")
    public void purchaseWaybill() {
        allFileService.purchaseWaybill();
    }


    @PostMapping("wareHouse")
    public void wareHouse() {
        allFileService.wareHouse();
    }

    @PostMapping("workOrder")
    public void workOrder(){
        allFileService.workOrder();
    }

    @PostMapping("unloadCabinet")
    public void unloadCabinet(){
        allFileService.unloadCabinet();
    }

    /**
     * 赔付
     */
     @PostMapping("/compensation")
     public void compensation(){
         allFileService.compensation();
     }

    /**
     * 汇总仓储费用
     */
    @PostMapping("/summaryStorage")
    public void summaryStorage(){
        allFileService.summaryStorage();
    }


    /**
     * 汇总运费补收
     */
    @PostMapping("/summaryCosts")
    public void summaryCosts(){
        allFileService.summaryCosts();
    }

    /**
     * 删除对账单上期数据
     */
    @PostMapping("/deletePrevious")
    public void deletePrevious(){
        allFileService.deletePrevious();
    }


    @PostMapping("/deletePrevious123")
    public void test() throws FileNotFoundException {
        allFileService.test();
    }






}


